#ifndef ALIYUN_HTTP_RESPONSE_H_
#define ALIYUN_HTTP_RESPONSE_H_

namespace aliyun {

class HttpResponse {
public:
  HttpResponse();
  virtual ~HttpResponse();

private: // don't allow copy
  HttpResponse(const HttpResponse& other);
  HttpResponse& operator=(const HttpResponse& other);

public:
  const unsigned char* GetBody(size_t& body_length) const;
  bool SetBody(const unsigned char* body, size_t body_length);
  bool AppendBody(const unsigned char *body, size_t body_length);

  int GetStatus(void) const;
  void SetStatus(int status);
  bool IsSuccess(void) const;

private:
  unsigned char *body_;
  size_t         body_length_;
  size_t         body_buffer_length_;
  int            status_;

};

} // namespace aliyun {

#endif // #ifndef ALIYUN_HTTP_RESPONSE_H_

// end of file
